「在物件導向革命的最初幾年,我們將 LSP 視為指導『繼承的使用』的一種方式。然而,LSP 可以擴展到架構層面,只要簡單地違反可替代性,就會導致系統的架構受到大量額外機制的汙染」
取自: Clean Architecture (p.67 & p.69)
上面兩篇 Journal 僅供膜拜大神用,只是想讓讀者們感受現在看似直觀的軟體設計原則們,都是當年大神們嘔心瀝血的結晶。僅以此感謝這些人的付出
LSP 或許是五大原則中最需花時間理解、也最難完全遵守的一個...
符合 LSP 的繼承關係需至少滿足下列 7 條規則 (Rules)
前三條是最重要的,好的繼承至少不能違反這三條
Ref: What is an example of the Liskov Substitution Principle?
"Objects are regarded as being modifiable only through their methods (encapsulation)"
製圖...
// 產 Code
"If S is a subtype of T, then objects of type T may be replaced with objects of type S (i.e., an object of type T may be substituted with any object of a subtype S) without altering any of the desirable properties of the program"
取自: https://en.wikipedia.org/wiki/Liskov_substitution_principle
Reference